System and method for entity selection optimization

ABSTRACT

Selecting one or more entities from a plurality of candidate entities subject to one or more constraints is accomplished by establishing upper and lower profit-margin boundary values and determining an optimal profit-margin value within the boundary values using an iterative process. The iterative process includes one or more iterations of: setting a current profit-margin candidate based on a current upper profit-margin boundary value and a current lower profit-margin boundary value, determining whether the current profit-margin candidate value satisfies the constraint(s), adjusting the current upper or lower profit-margin boundary value based on the current profit-margin candidate value, and determining whether to use the current profit-margin candidate value as the optimal profit-margin value based the current upper profit-margin boundary value and the current lower profit-margin boundary value. The respective quantity for each of the candidate entities is then calculated based on the optimal profit-margin value.

BACKGROUND

1. Field of the Invention

This invention relates generally to business forecasting and analysis,and more particularly to determining buy quantities.

2. Description of Related Art

In today's supply chain environment, the newsboy model is the primarytool for dealing with inventory control with stochastic demands. Themodel is based on the classical one developed originally by Hadley andWhiten (1963), in which one attempts to maximize the profit subject tothe constraint on the budget. They offered a Lagrangian method to solvethe problem. Since then, various efforts have been made to solvecompletely the newsboy problem. Yet, no optimal solution has been foundwith the lower bounds on the ordered quantities.

It is worthy to note that Hadley and Whitin's Lagrangian method relaxesthe non-negativity constraints of the order quantities. This would nothave serious consequences if the budget is large enough to cover allitems. The issue of non-negativity constraint was not paid too muchattention until Lau and Lau (1995, 1996) who observed that relaxing thenon-negativity constraints could lead to negative order quantities forsome of the considered products. On the other hand, if thenon-negativity constraints are not relaxed and Kuhn-Tucker conditionsare applied, the number of non-linear equations to be solvedsimultaneously grows exponentially as the number of products increases.This could be one of the reasons that most existing models relax thelower bounds to make the problem tractable.

An important advance to the newsboy problem is discussed in Abdel-Malek,et al., “An analysis of the multi-product newsboy problem with a budgetconstraint,” International Journal of Production Economics, Volume 97,Issue 3, 18 Sep. 2005, Pages 296-307, which is hereby incorporated byreference, and in Abdel-Malek, et al., “On the multi-product newsboyproblem with two constraints,” Computers & Operations Research, Volume32, Issue 8, August 2005, Pages 2095-2116, which is hereby incorporatedby reference. This approach involves dividing the available budget intothree regions as illustrated in FIG. 1. The first region corresponds tothe case where the budget is large enough to order the optimum quantityof each item. The second region corresponds to the case where a budgetconstraint is binding. The third region corresponds to the case wherethe budget is not large enough to order all of the products. A distinctsolution is then determined for each region of the available budget. Forthe first region, the solution yields the global maxima of the expectedprofit and the non-negativity constraints are not binding. For thesecond region, the Lagrangian approach with relaxed lower bounds can beused to determine a solution. Depending on the type of demanddistribution for each product, one can choose from exact, approximate,or Generic Iterative Method solution models to obtain the lot size foreach product. For the third region, the approach is based on a dualitytheory and starts by deleting, in ascending order, products with lowermarginal utilities at their bounds until the remaining products can fitwithin the available budget. Then, the non-negativity constraints arerelaxed and one can apply one of the solution methods followed in thesecond region.

Deleting products with lower marginal utilities at their bounds cannotguarantee that the least efficient products will be eliminated. Forexample, low marginal utility at ordered quantity Q_(i)=0 does notnecessarily mean low marginal utility at other points Q_(i)>0. Thus,while this method is sophisticated and intuitively appealing, it doesnot offer an optimal solution to the newsboy problem.

DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. However, the invention itself, as well asa preferred mode of use, and further objectives and advantages thereof,will best be understood by reference to the following detaileddescription when read in conjunction with the accompanying drawings,wherein:

FIG. 1 is a diagram of the regions associated with an approach tosolving the classic newsboy problem;

FIG. 2 is a schematic block diagram of an embodiment of an optimizationsystem;

FIG. 3 is a flowchart of a first embodiment of an optimization process;

FIG. 4 is a table showing an example of data used by embodiments of thedisclosed optimization process; and

FIG. 5 is a flowchart of a second embodiment of an optimization process.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 illustrates an exemplary optimization system 10 for evaluatingand selecting targeted entities from a large pool of entities. Theentity evaluated may be a product, organization, individual, or otheridentifiable unit. For example, an entity selection process in theretail industry can involve assortment planning that includes decidingwhich products to include in the product line and determining theinventory levels of these products; an entity selection process in thebanking industry can involve selecting targeted customers from a largenumber of prospect customers for a promotion campaign.

The optimization system 10 includes an input/output (I/O) interface 12,an optimization engine 14, a database 16, and a maintenance interface18. Alternative embodiments can combine or distribute the input/output(I/O) interface 12, optimization engine 14, database 16, and maintenanceinterface 18 as desired. Embodiments of the optimization system 10 caninclude one or more computers that include one or more processors andmemories configured for performing tasks described herein below. Thiscan include, for example, a computer having a central processing unit(CPU) and non-volatile memory that stores software instructions forinstructing the CPU to perform at least some of the tasks describedherein. This can also include, for example, two or more computers thatare in communication via a computer network, where one or more of thecomputers includes a CPU and non-volatile memory, and one or more of thecomputer's non-volatile memory stores software instructions forinstructing any of the CPU(s) to perform any of the tasks describedherein. Thus, while the exemplary embodiment is described in terms of adiscrete machine, it should be appreciated that this description isnon-limiting, and that the present description applies equally tonumerous other arrangements involving one or more machines performingtasks distributed in any way among the one or more machines. It shouldalso be appreciated that such machines need not be dedicated toperforming tasks described herein, but instead can be multi-purposemachines, for example computer workstations, that are suitable for alsoperforming other tasks.

The I/O interface 12 provides a communication link between externalusers, systems, and data sources and components of the optimizationsystem 10. The I/O interface 12 can be configured for allowing one ormore users to input information to the optimization system 10 via anyknown input device. Examples can include a keyboard, mouse, touchscreen, microphone, and/or any other desired input device. The I/Ointerface 12 can be configured for allowing one or more users to receiveinformation output from the optimization system 10 via any known outputdevice. Examples can include a display monitor, a printer, a speaker,and/or any other desired output device. The I/O interface 12 can beconfigured for allowing other systems to communicate with theoptimization system 10. For example, the I/O interface 12 can allow oneor more remote computer(s) to access information, input information,and/or remotely instruct the optimization system 10 to perform one ormore of the tasks described herein. The I/O interface 12 can beconfigured for allowing communication with one or more remote datasources. For example, the I/O interface 12 can allow one or more remotedata source(s) to access information, input information, and/or remotelyinstruct the optimization system 10 to perform one or more of the tasksdescribed herein.

The database 16 provides persistent data storage for optimization system10. While the term “database” is primarily used, a memory or othersuitable data storage arrangement may provide the functionality of thedatabase 16. In alternative embodiments, the database 16 can be integralto or separate from the optimization system 10 and can operate on one ormore computers. The database 16 preferably provides non-volatile datastorage for any information suitable to support the operation of theoptimization system 10, including various types of data discussed belowin connection with FIGS. 3-5.

The maintenance interface 18 is configured to allow users to maintaindesired operation of the optimization system 10. In some embodiments,the maintenance interface 18 can be configured to allow for reviewingand/or revising the data stored in the database 16 and/or performing anysuitable administrative tasks commonly associated with databasemanagement. This can include, for example, updating database managementsoftware, revising security settings, and/or performing data backupoperations. In some embodiments, the maintenance interface 18 can beconfigured to allow for maintenance of the optimization engine 14 and/orthe I/O interface 12. This can include, for example, software updatesand/or administrative tasks such as security management and/oradjustment of certain tolerance settings.

The optimization engine 14 is configured for selecting targeted entitiesfrom a large pool of entities according to concepts disclosed herein.The optimization engine 14 can include various combinations of one ormore processors, memories, and software components.

The optimization engine 14 can be configured to select targeted entitiesbased on quantity as a function of profit margin q_(i)(m) according to aprofit optimization approach, which involves maximizing the expectedprofit, and/or a cost minimization approach, which involves minimizingthe expected costs of overestimating and underestimating demand. Forexample, the optimization engine 14 can be configured to perform aprocess such as the processes described below in connection with FIGS.3-5.

Profit Optimization Approach

The profit optimization approach will be described within the context ofa retail environment; however, it should be appreciated that thisapproach applies equally to numerous other fields. For the profitoptimization approach, assume that a certain retailer can choose fromamong n products that can be ordered, with the cost for the retailer ofthe i-th product being represented as c_(i). The quantity of the i-thproduct to be ordered is represented herein as Q_(i) and the quantity ofdemand for the i-th product to be ordered is represented herein asX_(i). The quantity of demand X_(i) is a random variable having densityf_(i)(·). The unit retail price (i.e., the price per unit for which theretailer will sell the product) for the i-th product is representedherein as p_(i) and the unit salvage price for the i-th product isrepresented herein as s_(i). The profit is determined according toexpression (1) below.

$\begin{matrix}{\sum\limits_{i = 1}^{n}\left\{ {{p_{i}{\min\left( {Q_{i},X_{i}} \right)}} + {s_{i}{\max\left( {{Q_{i} - X_{i}},0} \right)}} - {c_{i}Q_{i}}} \right\}} & (1)\end{matrix}$In other words, the profit can be expressed as the difference betweenincome from sales and cost for the products. From expression (1), it canbe calculated (as illustrated with interim expression (2)) that theexpected profit is given by expression (3) below.

$\begin{matrix}\begin{matrix}{\sum\limits_{i = 1}^{n}\left\{ {{p_{i}{\int_{0}^{Q_{i}}{x_{i}{f_{i}\left( x_{i} \right)}}}} + {p_{i}Q_{i}{\int_{Q_{i}}^{\infty}{{f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}} +} \right.} \\\left. {{s_{i}{\int_{0}^{Q_{i}}{\left( {Q_{i} - x_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}} - {c_{i}Q_{i}}} \right\}\end{matrix} & (2) \\{= {{\sum\limits_{i = 1}^{n}\left\{ {{\left( {p_{i} - c_{i}} \right)Q_{i}} - {\left( {p_{i} - s_{i}} \right){\int_{0}^{Q_{i}}{\left( {Q_{i} - x_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}}} \right\}} = {\sum\limits_{i = 1}^{n}{\pi_{i}\left( Q_{i} \right)}}}} & (3)\end{matrix}$The multi-product newsboy problem is to find a non-negative quantity foreach product (Q_(i)) that maximizes the expected profit. In other words,find the maximum value that satisfies expression (3) such that the totalcost is less than or equal to a total budget constraint, as required byexpression (4a) below, and the quantity is non-negative, as required byexpression (4b) below.

$\begin{matrix}{{\sum\limits_{i = 1}^{n}{c_{i}Q_{i}}} \leq B} & \left( {4a} \right)\end{matrix}$Q _(i)≧0, i=1, . . . , n  (4b)

Relaxing the nonnegativity constraints and applying the Lagrangianmethod, the first order condition is shown as expression (5) below.p _(i)−(1+λ)c _(i) −F _(i)(Q _(i)) (p _(i) −s _(i))−0, for i=1, . . . ., n  (5)In expression (5), F_(i) is the cumulative distribution function (CDF)of the random quantity of demand variable X_(i). From expression (5),the solution shown below as expression (6) can be found.

$\begin{matrix}{{Q_{i,\lambda}^{*} = {F_{i}^{- 1}\left( \frac{p_{i} - {\left( {1 + \lambda} \right)c_{i}}}{p_{i} - s_{i}} \right)}},{{{for}\mspace{14mu} i} = 1},\;\ldots\;,n} & (6)\end{matrix}$In particular, when λ=0, expression (6) becomes the global maxima, whichis shown below as expression (7).

$\begin{matrix}{{Q_{i,0}^{*} = {F_{i}^{- 1}\left( \frac{p_{i} - c_{i}}{p_{i} - s_{i}} \right)}},{{{for}\mspace{14mu} i} = 1},\;\ldots\;,n} & (7)\end{matrix}$Expression (7) represents the solution when the budget B isunconstrained. In other words, expression (7) is the solution when thebudget B satisfies expression (8) below.

$\begin{matrix}{{\sum\limits_{i = 1}^{n}{c_{i}Q_{i,0}^{*}}} \leq B} & (8)\end{matrix}$

Note that if λ>0, then Q*_(i,λ) is not necessarily non-negative for ageneral distribution F_(i) (or larger than the specified lower bound)and the i-th summand in expression (3) is neither maximized nor evenpositive. Intuitively, if the marginal profit functions are constant,for highly profitable items, then the optimal quantity is Q*_(i,0) whenthere is sufficient budget to order this amount, and Q*_(i,λ) for someλ>0 when there is not sufficient budget to order Q*_(i,0); whereas forless profitable items, Q*_(i)=0, corresponding to λ=∞. Therefore, ingeneral, there does not exist a λ such that Q*_(λ)={Q*_(i,λ), . . . ,Q*_(n,λ)} is the optimal solution. For this reason, many heuristicapproaches have been developed to search for near optimal solutions.

Cost Minimization Approach

Another way of approaching the newsboy problem is from a costminimization standpoint, where the newsboy problem can be restated basedon total cost that includes cost of purchasing products, cost incurredfor unsold items, and revenue loss due to missed sales of out-of-stockitems. This total cost is determined according to expression (9) below.

$\begin{matrix}{\sum\limits_{i = 1}^{n}\;\left\{ {{c_{i}Q_{i}} + {h_{i}\mspace{14mu}\max\;\left( {{Q_{i} - X_{i}},0} \right)} + {v_{i}\mspace{14mu}\max\;\left( {{X_{i} - Q_{i}},0} \right\}}} \right.} & (9)\end{matrix}$As with the profit optimization approach, for the cost minimizationapproach there are n products to be ordered with the cost for the i-thproduct c_(i), the quantity of the i-th product to be ordered isrepresented as Q_(i) and the quantity of demand for the i-th product tobe ordered is represented as X_(i), which is a random variable havingdensity f_(i)(·). The unit cost per item incurred for the i-th leftoveror unsold product at the end of a specified period is represented hereinas h_(i), and unit cost per item of revenue loss incurred for the i-thproduct is represented herein as v_(i).

Note that this description follows the notation in Abdel-Malek, et al.(2005) “An analysis of the multi-product newsboy problem With a BudgetConstraint,” International Journal of Production Economics, Volume 97,Issue 3, 18 Sep. 2005, Pages 296-307. From expression (9) it can becalculated that the expected total cost is given by expression (10)below.

$\sum\limits_{i = 1}^{n}\;\left\{ {{c_{i}Q_{i}} + {h_{i}{\int_{0}^{Q_{i}}{\left( {Q_{i} - x_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}} + {v_{i}{\int_{Q_{i}}^{\infty}{\left( {x_{i} - Q_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}}} \right\}$For the cost minimization approach, the multi-product newsboy problem isto find a non-negative quantity for each product (Q_(i)) that minimizesthe expected total cost. In other words, find the minimum value thatsatisfies expression (10) such that the total cost is less than or equalto the total budget constraint, as required by expression (11a) below,and the quantity is non-negative, as required by expression (11b) below.

$\begin{matrix}{{\sum\limits_{i = 1}^{n}\;{c_{i}Q_{i}}} \leq B} & \left( {11a} \right)\end{matrix}$Q _(i)≧0,i=1, . . . . , n  (11b)

Using the Lagrangian multiplier method, the first order condition givesthe solution shown below as expression 12, where λ is the Lagrangianmultiplier. From expression (12), the global minima can be determinedaccording to expression (13).

$\begin{matrix}{{Q_{i,\lambda} = {F_{i}^{- 1}\left( \frac{v_{i} - {\left( {1 + \lambda} \right)c_{i}}}{v_{i} + h_{i}} \right)}},\mspace{14mu}{{{for}\mspace{14mu} i} = 1},\ldots\mspace{14mu},n} & (12) \\{{Q_{i,0} = {F_{i}^{- 1}\left( \frac{v_{i} - c_{i}}{v_{i} + h_{i}} \right)}},\mspace{14mu}{{{for}\mspace{14mu} i} = 1},\ldots\mspace{14mu},n} & (13)\end{matrix}$It follows, then, that the global minimum when the available budget issufficiently large enough to order the specified quantities according toexpression (13) can be determined according to expression (14).

$\begin{matrix}{B \geq {\sum\limits_{i = 1}^{n}\;{c_{i}{F_{i}^{- 1}\left( \frac{v_{i} - c_{i}}{v_{i} + h_{i}} \right)}}} \equiv B_{G}^{(1)}} & (14)\end{matrix}$In other words, the minimum value that satisfies expression (10), suchthat expressions (11a) and (11b) are satisfied, is given by expression(13) if B≧B_(G) ⁽¹⁾. The threshold B_(G) ⁽¹⁾ is the lower bound of thethird region discussed above in connection with FIG. 1.Generalized Object Function

In general, the present process provides an analytic solution to thenonlinear programming problem shown below as expression (15). Note thatc_(i) is assumed to be non-negative.

$\begin{matrix}{{{\max\mspace{14mu}{\sum\limits_{i = 1}^{n}\;{{\pi_{i}\left( Q_{i} \right)}\mspace{14mu}{such}\mspace{14mu}{that}\mspace{14mu}{\sum\limits_{i = 1}^{n}\;{c_{i}Q_{i}}}}}} \leq B},\mspace{14mu}{Q_{i} \geq 0},\mspace{14mu}{i = 1},2,\ldots\mspace{14mu},n} & (15)\end{matrix}$In expression (15), π_(i)(·) is strictly concave with a continuous firstderivative. For the profit-maximization approach, for example,determining the maximum value that satisfies expression (3) such thatthe total cost is less than or equal to the total budget, as required byexpression (4a), and the quantity is non-negative, as required byexpression (4b), is a specific case of this concave programming problemand is shown as expression (16a) below.

$\begin{matrix}{{\pi_{i}\left( Q_{i} \right)} = {{\left( {p_{i} - c_{i}} \right)Q_{i}} - {\left( {p_{i} - s_{i}} \right){\int_{0}^{Q_{i}}{\left( {Q_{i} - x_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}}}} & \left( {16a} \right)\end{matrix}$For the cost minimization problem, i.e. minimizing the expected totalcost (10), subject to constraints (11a) and (11b), it can be regarded asproblem (15) with the function π_(i)(·) specified as expression (16b)below.

$\begin{matrix}{{\pi_{i}\left( Q_{i} \right)} = {{{- c_{i}}Q_{i}} - {h_{i}{\int_{0}^{Q_{i}}{\left( {Q_{i} - x_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}} - {v_{i}{\int_{Q_{i}}^{\infty}{\left( {x_{i} - Q_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}}}} & \left( {16b} \right)\end{matrix}$

As an example, an investor solution to the problem will now bedescribed. A marginal profit (per monetary unit, e.g., dollar) functionis defined after ordering quantity q of the i-th product according toexpression (17) below.

$\begin{matrix}{{m_{i}(q)} = {\left( \frac{\mathbb{d}{\pi_{i}(q)}}{\mathbb{d}q} \right)/c_{i}}} & (17)\end{matrix}$This expression of m_(i)(q) is monotonically strictly decreasing. Fromthe investor's point of view, one would only order those products withthe most profitable margin, subject to the budget constraints.

The threshold of the maximum profit margin per monetary unit is m≧0.Accordingly, the most profitable items are those m_(i)(q)≧m for somequantity q>0. The ordered quantity is q_(i)(m)=m_(i) ⁻¹(m) for theselected item so that the profit margin per monetary unit is at least m.Since m_(i)(·) is strictly decreasing, the solution q_(i)(m) is unique.By defining q_(i)(m)=0 if m≧q_(i)(0), the maximum profit margin of thei-th item. The required budget can be determined according to expression(18) below.

$\begin{matrix}{{B(m)} = {\sum\limits_{i = 1}^{n}\;{c_{i}{q_{i}(m)}}}} & (18)\end{matrix}$Note that B(m) is a strictly decreasing function in m. The profit ismaximized when m=0. This requires the budget B in expression (15) to beat least B(0), namely, B≧B(0). For any budget B<B(0), the mostprofitable investment is to find m₀>0 such that B(m₀)=B. Such a solutionalways exists and is unique since B(·) is strictly decreasing withB(0)>B and B(∞)=0. This solution can be computed expeditiously accordingto processes discussed below in connection with FIGS. 3 and 5.

It can be shown that the solution q_(i)(m₀) is the optimal solution tothe problem shown as expression (15). First, since the objectivefunction is continuous and the set is compact, there exists a solutionto the problem of expression (15). Let Q*=(Q*₁, . . . , Q*_(n))^(T) bethe solution.

Note that q_(i)(0) is the solution of π/(q)=0, which is the uniquemaximizer to the concave function π_(i)(Q_(i)). Thus, the vector (q₁(0),. . . ,q_(n)(0))^(T) is the global maximizer when B≧B(0), namely whenthe budget is large enough to order these global optimal quantities.Therefore, it is necessary to prove the case B<B(0). In this case, bydefinition, we have that m₀>0 and

$\begin{matrix}{{\sum\limits_{i = 1}^{n}\;{c_{i}Q_{i}^{*}}} \leq B} & (19)\end{matrix}$Write q*_(i)=q_(i)(m₀) and q*=(q*_(i), . . . , q_(n)). Then,

$\begin{matrix}{{\sum\limits_{i = 1}^{n}\;{c_{i}q_{i}^{*}}} = {{B\left( m_{0} \right)} = B}} & (20)\end{matrix}$Let S={i:q*_(i)>Q*_(i)} and T={i:q*_(i)<Q*_(i)}. If S and T are notempty, then it can be shown that products from the set S areunder-ordered, and products from the set T are over-ordered. Fromexpressions (19) and (20), we have

$\begin{matrix}{{\sum\limits_{i \in S}^{\;}\;{c_{i}\left( {q_{i}^{*} - Q_{i}^{*}} \right)}} \geq {\sum\limits_{i \in T}^{\;}\;{c_{i}\left( {Q_{i}^{*} - q_{i}^{*}} \right)}} > 0} & (21)\end{matrix}$For the product iεS , since m_(i)(q)>m₀ for q<q*_(i), we haveπ(q* _(i))−π(Q* _(i))>m ₀ c _(i)(q* _(i) −Q* _(i))  (22)Similarly, for the product iεT, since m_(i)(q)<m₀ for q>q*_(i), weobtainπ(Q* _(i))−π(q* _(i))<m ₀ c _(i)(Q* _(i) −q* _(i))  (23)By combining expressions (21), (22), and (23), we obtain

$\begin{matrix}\begin{matrix}{{\sum\limits_{i \in S}^{\;}\;\left\{ {{\pi\left( q_{i}^{*} \right)} - {\pi\left( Q_{i}^{*} \right)}} \right\}} > {m_{0}{\sum\limits_{i \in S}^{\;}\;{c_{i}\left( {q_{i}^{*} - Q_{i}^{*}} \right)}}}} \\{\geq {m_{0}{\sum\limits_{i \in T}^{\;}\;{c_{i}\left( {Q_{i}^{*} - q_{i}^{*}} \right)}}}} \\{> {\sum\limits_{i \in T}^{\;}\;\left\{ {{\pi\left( Q_{i}^{*} \right)} - {\pi\left( q_{i}^{*} \right)}} \right\}}}\end{matrix} & (24)\end{matrix}$This entails that

${{\sum\limits_{i = 1}^{n}\;{\pi\left( Q_{i}^{*} \right)}} < {\sum\limits_{i = 1}^{n}\;{\pi\left( q_{i}^{*} \right)}}},$which contradicts with the optimal solution of Q*, and shows that q*=Q*.Profit Margin Function

A profit-margin based analysis will now be described for solving thenewsboy problem associated with finding the minimum value that satisfiesexpression (10) such that the total cost is less than or equal to atotal budget constraint, as required by expression (11a), and thequantity is non-negative, as required by expression (11b). For thisexample, as mentioned above in connection with the generalized objectfunction, one takes the expression shown above, and again below, asexpression (16b):

$\begin{matrix}{{\pi_{i}\left( Q_{i} \right)} = {{{- c_{i}}Q_{i}} - {h_{i}{\int_{0}^{Q_{i}}{\left( {Q_{i} - x_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}} - {v_{i}{\int_{Q_{i}}^{\infty}{\left( {x_{i} - Q_{i}} \right){f_{i}\left( x_{i} \right)}\ {\mathbb{d}x_{i}}}}}}} & \left( {16b} \right)\end{matrix}$Then, the profit margin function is shown as expression (25) below.

$\begin{matrix}{{m_{i}(q)} = {\frac{v_{i} - {\left( {v_{i} + h_{i}} \right){F_{i}(q)}}}{c_{i}} - 1}} & (25)\end{matrix}$The maximum profit margin is m_(i)(0)=v_(i) /c _(i)−1. The optimalordered quantities with the profit margin at least m is determinedaccording to expression (26) below.

$\begin{matrix}{{q_{i}(m)} = \left\{ \begin{matrix}{F_{i}^{- 1}\left( \frac{v_{i} - {\left( {1 + m} \right)c_{i}}}{v_{i} + h_{i}} \right)} & {{{when}{\mspace{11mu}\;}m} < {{v_{i}/c_{i}} - 1}} \\0 & {otherwise}\end{matrix} \right.} & (26)\end{matrix}$The minimum required budget to obtain the global minimum solution isdetermined according to expression (27) below.

$\begin{matrix}{{B(0)} = {\sum\limits_{i = 1}^{n}{c_{i}{F_{i}^{- 1}\left( \frac{v_{i} - c_{i}}{v_{i} + h_{i}} \right)}}}} & (27)\end{matrix}$Also, the required budget for m>0 is

$\begin{matrix}{{B(m)}{\sum\limits_{i = 1}^{n}{c_{i}{q_{i}(m)}}}} & (28)\end{matrix}$Note that B(m) is a strictly decreasing function in m. The profit ismaximized when m=0. This requires the budget B to be at least B(0), orB≧B(0). For any B<B(0), the most profitable investment is to find m₀>0such that B(m₀)=B. The analytic solution to the optimal quantity is thenq_(i)(m₀) , as defined by (26).

The profit-margin analysis described above in connection withexpressions (25) through (28) is described in terms of an extension tothe cost-minimization approach. It should be appreciated that theprofit-margin analysis can be re-stated in an equivalent manner in termsof the profit-optimization approach. For example, the expressions (25)through (27) can be restated as expressions (25a) through (27a),respectively, as shown below. Note that expression (28) would beunchanged.

$\begin{matrix}{{m_{i}^{(1)}(q)} = {\frac{p_{i} - {\left( {p_{i} + s_{i}} \right){F_{i}(q)}}}{c_{i}} - 1}} & \left( {25a} \right) \\{{q_{i}(m)} = \left\{ \begin{matrix}{F_{i}^{- 1}\left( \frac{p_{i} - {\left( {1 + m} \right)c_{i}}}{p_{i} - s_{i}} \right)} & {{{when}{\mspace{11mu}\;}m} < {{p_{i}/c_{i}} - 1}} \\0 & {otherwise}\end{matrix} \right.} & \left( {26a} \right) \\{{B(0)} = {\sum\limits_{i = 1}^{n}{c_{i}{F_{i}^{- 1}\left( \frac{p_{i} - c_{i}}{p_{i} - s_{i}} \right)}}}} & \left( {27a} \right)\end{matrix}$

Turning next to FIGS. 3 through 5, specific examples of process foroptimal entity selection will be described. The input data for entityselection depends on the underlying optimization models which describerelevant business applications. In general, input data includes (1)parameters of business models; and (2) stochastic distributions of thedefined entities. In the following examples, parameters of businessmodels include:

-   -   1) c_(i)—the cost per unit of product i;    -   2) p_(i)—the unit retail price for the i-th product;    -   3) s_(i)—the unit salvage price for the i-th product;    -   4) w_(i)—the units of shelf space required per unit of product        i;    -   5) B—the budget; and    -   6) W—the total available shelf space.        Alternatively, the parameters can include the leftover cost        h_(i) and revenue loss v_(i) in place of the unit price p_(i)        and salvage price s_(i) a cost minimization analysis.

Users can calibrate the parameters based on resources available for theproject and relevant business operational data. In the followingexamples, the density distributions are f_(i)(·)—the density function ofthe future demand for item i. Note that the default distribution is thenormal distribution. Users can specify the mean and standard deviationof the distribution based on statistical analysis or business insightsand users can also specify any other types of relevant randomdistributions, for example Poisson distribution, log-normaldistribution, Geometric distribution, and Negative binomialdistribution.

With all of these inputs, a system performing a process such as thoseshown in FIGS. 3 and 5 can generate optimal solutions on the orderedquantity q_(i)(m*), i=1, . . . , n. Note that the i-th item would not beselected if q_(i)(e)=0.

Referring first to FIGS. 3 and 4, FIG. 3 shows a flowchart of a firstexample of an optimal searching process and FIG. 4 shows data used inexplaining the process shown in FIG. 3. In some embodiments, the processshown in FIG. 3 can be implemented as software for evaluating andselecting targeted entities from a large pool of entities, for example,where the software is embodied in computer-readable media and executableby one or more computer processors to perform this process. The examplesdescribed herein can be as shown in FIG. 3, which is a single-constraintembodiment, specifically where the lone constraint is budget, or caninclude a single constraint (such as the budget constraint) withspecific penalty, as discussed below in connection with FIG. 5. Also,the example shown in FIG. 3 is based on a profit-optimization analysis;however, the process shown in FIG. 3 can alternatively be based on acost-minimization analysis, for example, by using expressions (25)through (27) in place of expressions (25a) through (27a) whereexpressions (25a) through (27a) are referenced in the description below.

The process shown in FIG. 3 will be described with reference to thesystem 10 shown in FIG. 2 and the data shown in FIG. 4 for the sake ofconvenience. The process can be performed by alternative systems and canbe performed using different data. In this example, the optimizationengine 14 retrieves input data from the database 16; however, inalternative embodiments the optimization engine 14 can retrieve datafrom the database 16 and/or one or more users, data sources, and/orother systems.

The goal of the process shown in FIG. 3 is to determine an optimalquantity x_(i) for each of a group of entities that satisfies a singleconstraint (the lone budget constraint or the budget constraint withspecific penalty as discussed below in connection with FIG. 5). In somecases, the optimal quantity x_(i) can be zero, so the process shown inFIG. 3 is also an optimal selection process in that only a subset of allavailable products might be found to have non-zero optimal quantitiesx_(i). In this example, the specific goal is to determine an optimalquantity x_(i) for each of the products Product 1 through Product 7 inthe table 40 shown in FIG. 4 that satisfies a budget constraint suchthat the cost for all of the products is within the budget B of acertain retailer. The table 40 includes item description data 42,quantity data 44, cost data 46, and space requirements data 48. This andother data, including the budget B, can be pre-fetched by theoptimization engine 10, or fetched as the process progresses, from thedatabase 16.

At block 20, a global optimal solution according to x*_(i)=q_(i)(0)(e.g., using expression (26a) above for profit maximization problem ofexpression (3) with constraints of expression (4)) is calculated,meaning that a set of optimal quantities x*_(i) that provides formaximum profits without regard to the budget constraint is determined. Aminimum global-optimal budget B(0) is also calculated as the minimumbudget required to purchase the quantities x*_(i).

Next, at block 22, the retailer's budget B is compared to the minimumglobal-optimal budget B(0). If the retailer's budget B is greater thanor equal to the minimum global-optimal budget B(0), then the optimalsolution is to purchase the global optimal quantities x*_(i) as noted inblock 24. Otherwise, the process continues to block 26.

At block 26, variables M_(low) and M_(high) are created. The value ofthe variable M_(low) is set equal to zero, and the value of the variableM_(high) is set equal to the maximum value in the set of global-optimalprofit margins m_(i) ⁽¹⁾ (0) calculated (e.g., using expression (25a)above for profit maximization problem (3) with constraints (4)) usingthe set of global-optimal quantities x*_(i) for the case of budgetconstraint only, or is set equal to the maximum value in the set ofglobal-optimal profit margins m_(i) ⁽²⁾(0) calculated (e.g., usingexpression (25b) below for maximization problem (30) with constraints(31a) and (31b)) using the set of global-optimal quantities x*_(i) forthe case of both budget and shelf space constraints. The variablesM_(low) and M_(high) represent lower and upper profit-margin boundaries,respectively, within which an optimal profit margin M* will be found.

At block 28, the process verifies that the difference between M_(high)and M_(low) is substantially non-zero, and if so, the process continuesto block 30. At block 30, the variable M* is set equal to thegeneralized weighted average of the current respective values ofM_(high) and M_(low)(M*=a*·M_(high)+(1−a*)·M_(low)). The weights canchange from iterations to iterations. In practice, this weight does notfrequently change with iteration. Typical values for a* can includea*=0.5, a*=0.618, a*=0.382, or other values, preferably between 0 and 1,that one would like to use. The process, specifically as illustrated inblocks 28 through 36, will adjust the respective values of M_(high),M_(low), and M* until the value of M* is equal to the highest possibleprofit margin that satisfies the constraint—which in this example is thebudget B constraint. Note that this adjustment process will typicallycontinue through several iterations of blocks 28 through 36, each timeadjusting the value of M*; also, some iterations will result in theadjustment of the value of M_(high) while other iterations will resultin the adjustment of the value of M_(low). As the respective values ofM_(high) and M_(low) change, the result of the calculation at block 28will gradually approach zero, eventually getting close enough to zero tobe within a predetermined tolerance, for example a predeterminedtolerance set by the user or a tolerance dictated by system limitations.Once the difference between M_(high) and M_(low) is thus substantiallyclose enough to zero, the process will continue from block 28 to block38, where the value of M* will be used in determining the idealquantities x*_(i) (e.g., based on expression (26a) for the profitmaximization problem (3) with constraint (4)).

The process of adjusting the respective values of M_(high), M_(low), andM* (until the value of M* is equal to the highest possible profit marginthat satisfies the budget B constraint) will now be described in greaterdetail with reference to blocks 30 through 36 in FIG. 3. As mentionedabove, at block 30 the variable M* is set equal to the desired weightedaverage of the current respective values of M_(high) and M_(low). Atblock 32, the current value of M* is tested to determine whether itsatisfies the budget constraint B. This is accomplished by using thecurrent profit-margin value of M* in expression (26a) to determine eachquantity q_(i), and then multiplying each of these quantities q_(i) by arespective cost c_(i) per item and summing as shown in expression (28)to calculate a budget for the current profit-margin value of M*. If thebudget required for the current profit-margin value of M* exceeds theretailer's budget B, then the process continues to block 34 where thevalue of M_(low) is set equal to the value of M*. Otherwise, the processproceeds to block 36 where the value of M_(high) is set equal to thevalue of M*. The process then returns to block 28, where the differencebetween where the value of M_(high) and the value of M_(low) iscalculated and, as described above, the process either continues foranother iteration of blocks 30 through 36 or the process continues toblock 38 and then ends.

FIG. 5 shows a flowchart of a second example of an optimal searchingprocess that can be performed by the optimization engine 14. This secondexample applies to assortment planning, and shows how the first examplediscussed above in connection with FIG. 3 can be extended to cases wheremore restrictions are relevant. For assortment planning, (1) shelf spaceand (2) minimum purchase order are common constraints. First, the shelfspace restrictions are introduced by appending expression (3), (4a) and(4b) with the constraint shown in expression (29).

$\begin{matrix}{{\sum\limits_{i = 1}^{n}{w_{i}q_{i}}} \leq W} & (29)\end{matrix}$In expression (29), w_(i) is representative of the units of shelf spacerequired per unit of product i and W is representative of the totalavailable shelf space. The optimal solution to the profit maximizationwith both budget and shelf space constraints ((3), (4a), (4b) and (29))is obtained through following procedure. The procedure is applicable togeneral concave function π_(i)(Q_(i)).

a) For any given λ>0, (λ can be thought of as the profit per squarefoot), find optimal solution, q₁(λ), . . . , q_(n)(λ), to the followingprofit maximization problem:

$\begin{matrix}{\max\;{\sum\limits_{i = 1}^{n}\left\lbrack {{\pi_{i}\left( q_{i} \right)} - {{\lambda \cdot w_{i}}q_{i}}} \right\rbrack}} & (30) \\{{\sum\limits_{i = 1}^{n}{c_{i}q_{i}}} \leq B} & \left( {31a} \right)\end{matrix}$q _(i)≧0, i=1, . . . , n  (31b)

Note: The profit margin function for expression (30) is then (25b)below.

$\begin{matrix}{{m_{i}^{(2)}(q)} = {\frac{p_{i} - {\left( {p_{i} - s_{i}} \right){F_{i}(q)}} - {\lambda \cdot w_{i}}}{c_{i}} - 1}} & \left( {25b} \right)\end{matrix}$The optimal order quantity for problem (30) with constraints (31) withprofit margin at least m is then (26b):

$\begin{matrix}{{q_{i}\left( {m,\lambda} \right)} = \left\{ \begin{matrix}{F_{i}^{- 1}\left( \frac{p_{i} - {\lambda\; w_{i}} - {\left( {1 + m} \right)c_{i}}}{p_{i} - s_{i}} \right)} & {{{when}{\mspace{11mu}\;}m} < {{\left( {p_{i} - {\lambda\; w_{i}}} \right)/c_{i}} - 1}} \\0 & {otherwise}\end{matrix} \right.} & \left( {26b} \right)\end{matrix}$

b) Validate the shelf space constraint is satisfied:

$\begin{matrix}{{\sum\limits_{i = 1}^{n}{w_{i}{q_{i}^{*}(\lambda)}}} = W} & (32)\end{matrix}$

Note: here q*_(i)(λ) is the optimal order quantity satisfying the budgetconstraint.

c) Find the smallest profit per square foot, λ₀ to satisfy the shelfspace constraint.

We now demonstrate that q_(i)(λ₀),i=1, . . . , n, specified by (26b) and(32), is the global optimal solution to the profit maximization problem(3) subject to the budget constraint (4a), non-negativity constraint(4b), and shelf space constraint (29). Consider expression (30), (31a)and (31b) with each given λ≧0. Since π_(i)(q_(i))−λw_(i)q_(i) isstrictly concave in q_(i), the optimal solution exists according to[0021]. Let the solution be q*_(i)(λ), i=1, . . . , n. The requiredshelf space is

$\begin{matrix}{{w(\lambda)} = {\sum\limits_{i = 1}^{n}{w_{i}{q_{i}^{*}(\lambda)}}}} & (33)\end{matrix}$Note that as λ decreases, the profit margins per dollar increase andhence the ordered quantities increase. Hence, w(λ) is a decreasingfunction of λ. If w(0)≦W , then we have sufficient shelf space and henceq*_(i)(0),i=1, . . . , n is the global optimal. Otherwise, there existsa λ₀≧0 such thatw(λ₀)=W  (34)since w(0)>w and w(∞)=0. We now show that q*_(i)(λ₀), i=1, . . . , n isthe solution to expression (35) below, or the combination of (3), (4a),(4b) and (29) above.

$\begin{matrix}{{\max\;{\sum\limits_{i = 1}^{n}{\pi_{i}\left( q_{i} \right)}}}{{{s.t.{\sum\limits_{i = 1}^{n}{c_{i}q_{i}}}} \leq B},{{\sum\limits_{i = 1}^{n}{w_{i}q_{i}}} \leq W},{{{and}\mspace{14mu} q_{i}} \geq 0},{i = 1},\ldots\;,n}} & (35)\end{matrix}$Note that q*_(i)(λ₀), i=1, . . . , n solves (30),(31a) and (31b). Itfollows that

${\sum\limits_{i = 1}^{n}\left\lbrack {{\pi_{i}\left( {q_{i}^{*}\left( \lambda_{0} \right)} \right)} - {\lambda_{0}w_{i}{q_{i}^{*}\left( \lambda_{0} \right)}}} \right\rbrack} \geq {\sum\limits_{i = 1}^{n}\left\lbrack {{\pi_{i}\left( q_{i} \right)} - {\lambda_{0}w_{i}q_{i}}} \right\rbrack}$for any q_(i) satisfies (31a) and (31b). By (34), we have

${\sum\limits_{i = 1}^{n}{\pi_{i}\left( {q_{i}^{*}\left( \lambda_{0} \right)} \right)}} \geq {{\sum\limits_{i = 1}^{n}{\pi_{i}\left( q_{i} \right)}} + {\lambda_{0}\left\lbrack {w - {\sum\limits_{i = 1}^{n}{w_{i}q_{i}}}} \right\rbrack}}$Since λ₀≧0, by the constraint in (35), we have

${\sum\limits_{i = 1}^{n}{\pi_{i}\left( {q_{i}^{*}\left( \lambda_{0} \right)} \right)}} \geq {\sum\limits_{i = 1}^{n}{\pi_{i}\left( q_{i} \right)}}$for any q_(i) satisfies the constraints in (35). The optimal solutionfor the product selection model with both budget and shelf-spaceconstraints can be provided by the process shown in FIG. 5.

The process shown in FIG. 5 will be described with reference to thesystem 10 shown in FIG. 2 and the data shown in FIG. 4 for the sake ofconvenience. The process can be performed by alternative systems and canbe performed using different data. In this example, the optimizationengine 14 retrieves input data from the database 16; however, inalternative embodiments the optimization engine 14 can retrieve datafrom the database 16 and/or one or more users, data sources, and/orother systems. In some embodiments, the process shown in FIG. 5 can beimplemented as software for evaluating and selecting targeted entitiesfrom a large pool of entities, for example where the software isembodied in computer-readable media and executable by one or morecomputer processors to perform this process.

The example shown in FIG. 5 is a dual-constraint embodiment,specifically where the two constraints are budget and shelf space. Thus,the goal of the process shown in FIG. 5 is to determine an optimalquantity x_(i) for each of a group of entities that satisfies the twoconstraints. As with the process shown in FIG. 3, in some cases, theoptimal quantity x_(i) can be zero, so the process shown in FIG. 5 isalso an optimal selection process in that only a subset of all availableproducts might be found to have non-zero optimal quantities x_(i). Inthis example, the specific goal is to determine an optimal quantityx_(i) for each of the products Product 1 through Product 7 in the table40 shown in FIG. 4 that satisfies a budget constraint, such that thecost for all of the products is within the budget B of a certainretailer, and also satisfies a shelf-space constraint, such that theretailer will have sufficient shelf space for all of the products. Thetable 40 includes item description data 42, quantity data 44, cost data46, and space requirements data 48. This and other data, including thebudget B and total available shelf space W, can be pre-fetched by theoptimization engine 10, or fetched as the process progresses, from thedatabase 16.

At block 50, a minimum global-optimal amount of shelf space W(0) iscalculated, meaning that a set of optimal quantities x*_(i) thatprovides for maximum profits without regard to the shelf-spaceconstraints is determined. x*_(i)'s are the solutions to expression (3),(4a) and (4b), or solutions to expression (10), (11a) and (11b).

Next, at block 52, the process compares the retailer's shelf space W tothe minimum global-optimal shelf space W(0). If the retailer's shelfspace W is greater than or equal to the minimum global-optimal shelfspace W(0), then the process continues to block 54. At block 54, theprocess output the solutions to expression (3), (4a) and (4b), orsolutions to expression (10), (11a) and (11b). The computation is ended.

At block 56, variables λ_(low) and λ_(high) are created. The value ofthe variable λ_(low) is set equal to zero, and the value of the variableλ_(high) is set equal to the maximum value of highest profits per unitshelf space of all products, i.e. λ_(high)=max{π′_(i)(0)/w_(i), i=1, . .. , n}, where π′_(i)(0) denotes the derivative function of π_(i)(q) atq=0. The variables λ_(low) and λ_(high) represent lower and upperaverage profit per square foot boundaries, respectively, within which anaverage profit per square foot will be found. When λ≧λ_(high), theoptimal solution to problem (30) subject to constraints (31a) and (31b)is merely q_(i)=0 for all i.

At block 58, the process verifies that the difference between λ_(low)and λ_(high) is substantially non-zero, and if so, the process continuesto block 60. At block 60, the variable λ* is set equal to thegeneralized weighted average of the current respective values ofλ_(high) and λ_(low) (λ*=b*·λ_(high)+(1−b*)·λ_(low)). The weights canchange from iterations to iterations. In practice, this weight does notfrequently change with iteration. Typical values for b* can includeb*=0.5, b*=0.618, b*=0.382, or other values, preferably between 0 and 1,that one would like to use. The process, specifically as illustrated inblocks 58 through 68, will adjust the respective values of λ_(high),λ_(low), and λ* until the value of λ* is equal to the least possibleprofit per square foot that satisfies the constraints—which in thisexample include the budget B constraint and the shelf space Wconstraint. Note that this adjustment process will typically continuethrough several iterations of blocks 58 through 68, each time adjustingthe value of λ*; also, some iterations will result in the adjustment ofthe value of λ_(high) while other iterations will result in theadjustment of the value of λ_(low). As the respective values of λ_(high)and λ_(low) change, the result of the calculation at block 58 willgradually approach zero, eventually getting close enough to zero to bewithin a predetermined tolerance, for example a predetermined toleranceset by the user or a tolerance dictated by system limitations. Once thedifference between λ_(high) and λ_(low) is thus substantially closeenough to zero, the process will continue from block 58 to block 70,where the value of λ* will be used in determining the ideal quantitiesq_(i)* (e.g., based on expression (26b)).

The process of adjusting the respective values of λ_(high), λ_(low), andλ* (until the value of λ* is equal to the least possible profit persquare foot that satisfies the budget B and shelf-space W constraints)will now be described in greater detail with reference to blocks 60through 68 in FIG. 5. As mentioned above, at block 60 the variable λ* isset equal to the desired weighted average of the current respectivevalues of λ_(high) and λ_(low)

At block 62, a profit maximization program, which can perform a processaccording to the above-described flowchart shown in FIG. 3, is called tosolve expression (30), (31a) and (31b) with λ=λ*.

At block 64, the current value of λ* is tested to determine whether itsatisfies the shelf space constraint W. This is accomplished by usingthe current value of profit-per square foot of λ* to determine eachquantity q_(i), and then multiplying each of these quantities q_(i) by arespective shelf space w_(i) per item and summing as shown on the leftside in expression (30) to calculate a shelf space for the current valueof profit per square foot, λ*. If the shelf space required for thecurrent value of profit per square foot, λ* exceeds the retailer's shelfspace W, then the process continues to block 68 where the value ofλ_(low) is set equal to the value of λ*. Otherwise, the process proceedsto block 66.

At block 66, the value of λ_(high) is set equal to the value of λ*. Theprocess then returns to block 58, where the difference between where thevalue of λ_(high) and the value of λ_(low) is calculated and, asdescribed above, the process either continues for another iteration ofblocks 60 through 68 or the process continues to block 70 and then ends.

While one- and two-constraint examples have been described and shown inFIGS. 3 and 5, respectively, it should be appreciated that the presentconcepts can be extended to situations involving still more constraints.

The present disclosure provides an entity optimization system andmethod, where examples have been described that involve selectingproducts targeted at maximizing profit with budget and/or shelf-spaceconstraints. The examples illustrated in the present disclosure areapplicable to business applications that select products withconstraints of budgets and/or space. However, the concepts describedherein can also be applied to other applications. For example, selectingtargeted customers in the credit card industry, promotional campaignsfor the catalog industry, marketing campaigns for the pharmaceuticalindustry, etc. The concepts described herein provide for a particularlyefficient process that requires less processing time as compared toprior systems and allows for cost reduction, particularly when largenumbers of products or other entities are involved.

It is apparent that an invention with significant advantages has beendescribed and illustrated. Although the present invention is shown in alimited number of forms, it is not limited to just these forms, but isamenable to various changes and modifications without departing from thespirit thereof.

1. A computer-implemented method for selecting a set of one or moreentities from a plurality of candidate entities subject to one or moreconstraints, the method being performed using one or more processingunits, the method comprising: establishing upper and lower profit-marginboundary values; calculating a global-optimal value and determiningwhether the global-optimal value satisfies the one or more constraints;determining an optimal profit-margin value using an iterative processwith the one or more processing units, wherein the determining of theoptimal profit-margin value comprises one or more iterations of: settinga current profit-margin candidate based on a current upper profit-marginboundary value and a current lower profit-margin boundary value,determining whether the current profit-margin candidate value satisfiesthe one or more constraints, adjusting one of the current upper andlower profit-margin boundary values based on the current profit-margincandidate value, and determining whether to use the currentprofit-margin candidate value as the optimal profit-margin value basedon at least one of the current upper profit-margin boundary value andthe current lower profit-margin boundary value; and calculating arespective quantity for each of the candidate entities based on theoptimal profit-margin value.
 2. The method of claim 1, wherein theglobal-optimal value is calculated based on a respective leftover costfor each of the candidate entities and a respective revenue-loss costfor each of the candidate entities.
 3. The method of claim 1, whereinthe global-optimal value is calculated based on a respective a retailprice for each of the candidate entities and a respective salvage pricefor each of the candidate entities.
 4. The method of claim 1, whereinthe setting of the current profit-margin candidate value includessetting the profit-margin candidate value equal to an average of thecurrent upper profit-margin boundary value and the current lowerprofit-margin boundary value.
 5. The method of claim 1, wherein theadjusting of one of the current upper and lower profit-margin boundaryvalues is based on whether the current profit-margin candidate valuesatisfies the constraint and includes changing the thus selected valueto the current profit-margin candidate value.
 6. The method of claim 1,wherein the iterative process includes determining whether to perform asubsequent iteration of the iterative process based on whether thecurrent upper profit-margin boundary is substantially different than thecurrent lower profit-margin boundary value.
 7. The method of claim 1,wherein the determining of whether to use the current profit-margincandidate value as the optimal profit-margin value is based at least inpart on the difference between the current upper profit-margin boundaryvalue and the current lower profit-margin boundary value.
 8. A systemfor selecting a set of one or more entities from a plurality ofcandidate entities subject to one or more constraints, the systemcomprising one or more processing units and non-volatile memory storingcomputer-readable instructions for: establishing upper and lowerprofit-margin boundary values; calculating a global-optimal value anddetermining whether the global-optimal value satisfies the one or moreconstraints; determining an optimal profit-margin value using aniterative process with one or more processing units, wherein thedetermining of the optimal profit-margin value comprises one or moreiterations of: setting a current profit-margin candidate based on acurrent upper profit- margin boundary value and a current lowerprofit-margin boundary value, determining whether the currentprofit-margin candidate value satisfies the one or more constraints,adjusting one of the current upper and lower profit-margin boundaryvalues based on the current profit-margin candidate value, anddetermining whether to use the current profit-margin candidate value asthe optimal profit-margin value based on at least one of the currentupper profit-margin boundary value and the current lower profit-marginboundary value; and calculating a respective quantity for each of thecandidate entities based on the optimal profit-margin value.
 9. Thesystem of claim 8, wherein the global-optimal value is calculated basedon a respective leftover cost for each of the candidate entities and arespective revenue-loss cost for each of the candidate entities.
 10. Thesystem of claim 8, wherein the global-optimal value is calculated basedon a respective a retail price for each of the candidate entities and arespective salvage price for each of the candidate entities.
 11. Thesystem of claim 8, wherein the setting of the current profit-margincandidate value includes setting the profit-margin candidate value equalto an average of the current upper profit-margin boundary value and thecurrent lower profit-margin boundary value.
 12. The system of claim 8,wherein the adjusting of one of the current upper and lowerprofit-margin boundary values is based on whether the currentprofit-margin candidate value satisfies the constraint and includeschanging the thus selected value to the current profit-margin candidatevalue.
 13. The system of claim 8, wherein the iterative process includesdetermining whether to perform a subsequent iteration of the iterativeprocess based on whether the current upper profit-margin boundary issubstantially different than the current lower profit-margin boundaryvalue.
 14. The system of claim 8, wherein the determining of whether touse the current profit-margin candidate value as the optimalprofit-margin value is based at least in part on the difference betweenthe current upper profit-margin boundary value and the current lowerprofit-margin boundary value.
 15. Software for selecting a set of one ormore entities from a plurality of candidate entities subject to one ormore constraints, the software being embodied in computer-readable mediaand when executed operable to: establish upper and lower profit-marginboundary values; calculating a global-optimal value and determiningwhether the global-optimal value satisfies the one or more constraints;determine an optimal profit-margin value using an iterative process,wherein the determining of the optimal profit-margin value comprises oneor more iterations of: setting a current profit-margin candidate basedon a current upper profit-margin boundary value and a current lowerprofit-margin boundary value, determining whether the currentprofit-margin candidate value satisfies the one or more constraints,adjusting one of the current upper and lower profit-margin boundaryvalues based on the current profit-margin candidate value, anddetermining whether to use the current profit-margin candidate value asthe optimal profit-margin value based on at least one of the currentupper profit-margin boundary value and the current lower profit-marginboundary value; and calculate a respective quantity for each of thecandidate entities based on the optimal profit-margin value; wherein thecomputer-readable media is non-transitory.
 16. The software of claim 15,wherein the global-optimal value is calculated based on a respectiveleftover cost for each of the candidate entities and a respectiverevenue-loss cost for each of the candidate entities.
 17. The softwareof claim 15, wherein the global-optimal value is calculated based on arespective a retail price for each of the candidate entities and arespective salvage price for each of the candidate entities.
 18. Thesoftware of claim 15, wherein the setting of the current profit-margincandidate value includes setting the profit-margin candidate value equalto an average of the current upper profit-margin boundary value and thecurrent lower profit-margin boundary value.
 19. The software of claim15, wherein the adjusting of one of the current upper and lowerprofit-margin boundary values is based on whether the currentprofit-margin candidate value satisfies the constraint and includeschanging the thus selected value to the current profit-margin candidatevalue.
 20. The software of claim 15, wherein the iterative processincludes determining whether to perform a subsequent iteration of theiterative process based on whether the current upper profit-marginboundary is substantially different than the current lower profit-marginboundary value.
 21. The software of claim 15, wherein the determining ofwhether to use the current profit-margin candidate value as the optimalprofit-margin value is based at least in part on the difference betweenthe current upper profit-margin boundary value and the current lowerprofit-margin boundary value.